This application generally relates to routing requests and performing queries in a computer system. More particularly, this application relates to performing adaptive partitioning techniques in a computer system when performing user queries and routing user requests.
Requests within a computer system, such as a distributed system, may be assigned to particular server nodes in accordance with load balancing techniques. These load balancing techniques may include routing requests to a particular node based on factors relating to the dynamic state of a node, such as the current processing load and availability of a server node. Additionally, static node characteristics and capabilities may also be taken into account when routing a particular user request. For example, the particular processing speed of the CPU of a particular server node may be a factor, as may be the availability of a particular type of software or hardware.
Thus, there is required a technique for routing requests within a computer system which takes into account particularities of the various hardware and software in the computer system while simultaneously providing an adaptive technique in accordance with particular user queries to provide for better utilization of computer resources.
In accordance with principles of the invention is a method for performing data query caching in a computer system. A data domain is partitioned into one or more partitions. One or more of said partitions are associated with one or more nodes in a computer system. A request for a data query is classified as pertaining to a particular one of the partitions. The request is routed to a node in the computer system in accordance with the particular one of the partitions. Data from a data query cache associated with the node is used in performing a data query included in the request.
Thus, there is provided a technique for routing requests within a computer system which takes into account particularities of the various hardware and software in the computer system while simultaneously providing an adaptive technique in accordance with particular user queries to provide for better utilization of computer resources.
The above-mentioned and other features of the invention will now become apparent by reference to the following description taken in connection with the accompanying drawings, in which:
FIG. 1 is an example of an embodiment of a system that includes an on-line query tool;
FIG. 2 is an example of a block diagram of a hardware view of an embodiment of an on-line query tool;
FIG. 3 is an example of an embodiment of a user interface displayed with an on-line query tool;
FIG. 4 is an example of a block diagram of a software view of an online query tool of FIG. 2;
FIG. 5 is an example of an embodiment of a table illustrating data storage for denaturalized objects in the databases.
FIG. 6 is an example of an embodiment of a table representing data stored in the generic object dictionary;
FIG. 7 is an example of an embodiment of a portion 440 of a PHTML execution tree;
FIG. 8 is an example of an embodiment showing more detail of the parse driver;
FIGS. 9 and 10 are an example of a user interface displayed in response to a user request with an online query tool;
FIG. 11 is an example of an embodiment of a user interface displayed with user query information;
FIG. 12 is an example of the query results displayed in response to performing a user query of FIG. 11;
FIG. 13 is an example of a user interface which includes user-specified query information;
FIG. 14 is an example of a resulting display page in response to the query performed with information specified in FIG. 13;
FIG. 15 is a more detailed display in response to choosing a particular category of FIG. 14;
FIGS. 16 and 17 are an example of a user interface displayed in response to selecting an option from the menu of FIG. 3 to add or change a listing;
FIG. 18 is an example of a display screen in response to updating the business listing specified in FIGS. 16 and 17;
FIGS. 19 and 20 are an example of a user interface screen display results in response to a user request with regard to FIG. 18;
FIG. 21 is an example of a screen display to a user with more information with regard to the business listing selected from screen 20;
FIG. 22 is the business information displayed with regard to the business in FIG. 21;
FIG. 23 is an example of an embodiment of the processes included in the request router of FIG. 22;
FIG. 24 is an example of a block diagram of an embodiment of the Backoffice component;
FIG. 25 is an example of the flow process representing the processing of normalized data to the various data forms included in the Front End Server;
FIG. 26 is an example of normalized data as may be included in an embodiment of the invention;
FIG. 27 is an example of denormalized data form as may be included in an embodiment of the invention;
FIG. 28 is a flowchart of an example of an embodiment of a method for performing request processing in the system of FIG. 2 and 4;
FIG. 29 is a flowchart of an example of an embodiment of the method steps for performing parser processing in the system of FIG. 2 and 4;
FIG. 30 is a flowchart of an example of a method with steps for performing query engine processing in the system of FIG. 2 and 4;
FIG. 31 is an example of a dependency graph as may be included in one embodiment of the invention for performing incremental update;
FIG. 32 is an example of a flowchart of the method steps for performing different update techniques in accordance with the number of transactions;
FIG. 33 is a flowchart of an example of method steps of one embodiment for performing data query cache lookup as used in performing a data query;
FIG. 34 represents an example of applying the minimum cost derivation sequence as applied in the step of FIG. 33;
FIG. 35 is a flowchart of an embodiment of method with steps for forming a name and determining if the corresponding data set is located in the query cache;
FIG. 36 is an example of an entity as stored in the data query cache;
FIG. 37 is a flowchart of an embodiment of a method including steps for performing an additional total-city cache lookup;
FIGS. 37 and 38 are flowcharts for a method in one embodiment for performing total-city and multi-city cache searches;
FIG. 39 is an example of more details that may be included in a embodiment of the query engine;
FIG. 40 is an example of an embodiment of method steps by which the information retrieval software may obtain results;
FIG. 41 is a flow chart showing an example of an embodiment of method steps for obtaining results;
FIG. 42 is a flow chart showing an example of method steps for classifying results for queries using common terms;
FIG. 43 depicts an example of a user interface for an on-line query tool, including a screen for initiating a user query;
FIG. 44 depicts an example of a user interface for an on-line query tool, including categories that may be retrieved in response to initiation of a user query;
FIG. 45 is a block diagram of an embodiment of the database as may be included in the Backoffice component;
FIG. 46 through 52 are flowcharts depicting processing steps in a method of one embodiment for performing foreign source data integration; and
FIGS. 53 through 58 are flowcharts of a method of one embodiment for performing native source data integration processing.
FIG. 59 is an example of an embodiment of data tables included on a sending node for a multi-media data transfer;
FIG. 60 is an example of an embodiment of the tables as appearing on the sending side and the receiving side in the multi-media data transfer;
FIG. 61 is an example of a representation of a tree structure representing the relationships between entitites used in the multi-media transfer;
FIG. 62 is a snapshot of the tables that may be included in a preferred embodiment in sending data in a multi-media data transfer;
FIG. 63 is a snapshot of an example of an embodiment of the tables on the sending and receiving side at another point when performing a multi-media data transfer;
FIG. 64 is an example of an embodiment of tables and external processes on the sending and receiving side using the multi-media data transfer;
FIG. 65 is an example of an embodiment of the tables resulting from the text data integration;
FIG. 66 is an example of a block diagram of an embodiment of the data table whose contents have been transferred to the receiving side;
FIG. 67 is a flowchart of a method of the steps of one embodiment for assembling blob data into a repository table when performing a multi-media data transfer;
FIG. 68 is a flow chart setting forth method steps for establishing super-category term lists and for matching advertisements to super-categories, to assist in targeting an advertisement to a user of an on-line query tool;
FIG. 69 is a flow chart setting forth method steps for mapping categories to super-categories;
FIG. 70 is a flow chart setting forth method steps for executing a modified query in an on-line query tool designed to assist in targeting an advertisement to a user of an on-line query tool; and
FIG. 71 is a diagram showing an example of a linked super-category term list.